package org.study.springboot.learning.reflect;

/**
 * <p>Title: ClassAndClassLoader <p>
 * <p>Description: TODO<p>
 *
 * @Author ZhangSY
 * @Date 2021/6/20 10:17
 * @Version v1.0
 **/
public class ClassAndClassLoader {
    public static void main(String[] args) throws Exception
    {
        Class<?> c = Class.forName("org.study.springboot.learning.reflect.Reflection");
        Reflection[] rs = new Reflection[2];

        System.out.println("Class.getClass()：" + c.getClass()); // 获取java.lang.Class的Class对象
        System.out.println("Class.getClassLoader()：" + c.getClassLoader()); // 获取类的加载器
        System.out.println("Class.getSuperclass()：" + c.getSuperclass()); // 获取父类Class对象
        System.out.println("Class.getInterfaces()：" + c.getInterfaces()[0] + ", " + c.getInterfaces()[1]); // 获取类的接口列表，注意返回的是一个数组
        System.out.println("Class.getgetComponentType()：" + rs.getClass().getComponentType()); // 获取该数组的Class对象

        Reflection r = (Reflection)c.newInstance(); // 根据Class实例化出一个类实例来,默认调用无参构造方法
        System.out.println("Class.newInstance()：" + r);
    }
}
